#ifndef DEFAULT_KEYS_H_
# 	define DEFAULT_KEYS_H_

/** keyboard management, default keys constants
 ** NOTE: this file only contains defines
 **   that's why we consider it as a C file
 */

/* Warning: *MUST* be capitalize chars */

/* __________ Character Motion __________ */
# 	define KEY_DEFAULT_MOVE_FORWARD			'W'
# 	define KEY_DEFAULT_MOVE_BACKWARD		'S'
# 	define KEY_DEFAULT_MOVE_LEFT			'A'
# 	define KEY_DEFAULT_MOVE_RIGHT			'D'

# 	define KEY_DEFAULT_TILT_LEFT			'Q'
# 	define KEY_DEFAULT_TILT_RIGHT			'E'

/* rm, mouse ctrl */
# 	define KEY_DEFAULT_TURN_LEFT			'F'
# 	define KEY_DEFAULT_TURN_RIGHT			'G'


/* shd not consider... for now / shd be automatic*/
/*# 	define KEY_DEFAULT_BODY_TURN_LEFT */
/*#	define KEY_DEFAULT_BODY_TURN_RIGHT */

/* __________ Character position __________ */
# 	define KEY_DEFAULT_POSITION_KNEE
# 	define KEY_DEFAULT_POSITION_CROUCH

/* caps lock ? */
# 	define KEY_DEFAULT_RUN

/* shift ? */
# 	define KEY_DEFAULT_SPRINT



/* __________ Inventory __________ */
# 	define KEY_DEFAULT_INVENTORY_OPEN_BACK
# 	define KEY_DEFAULT_INVENTORY_OPEN_SIDE
# 	define KEY_DEFAULT_INVENTORY_OPEN_HAND
# 	define KEY_DEFAULT_INVENTORY_OPEN_BANANA

/* drop down content to see it quickly ? */
# 	define KEY_DEFAULT_INVENTORY_EMPTY_BACK
# 	define KEY_DEFAULT_INVENTORY_EMPTY_SIDE
# 	define KEY_DEFAULT_INVENTORY_EMPTY_HAND
# 	define KEY_DEFAULT_INVENTORY_EMPTY_BANANA


/* drop pack in case of emergency */
# 	define KEY_DEFAULT_INVENTORY_DROP_BACK
# 	define KEY_DEFAULT_INVENTORY_DROP_SIDE
# 	define KEY_DEFAULT_INVENTORY_DROP_HAND
# 	define KEY_DEFAULT_INVENTORY_DROP_BANANA /* where's emergency ? */


/* cd be same as 'talk' (more or less 'action' button) */
# 	define KEY_DEFAULT_STORE_CURRENT_ITEM

/* item in hands (handgun, jacket, ...), equip it */
# 	define KEY_DEFAULT_EQUIP

# 	define KEY_DEFAULT_CHECK_STORAGE_NEXT
# 	define KEY_DEFAULT_CHECK_STORAGE_PREV

/* body, bag, ... */
# 	define KEY_DEFAULT_RUMMAGE /* search [fr: farfouiller] */

/* drag a body / bag to check it in a safer place */
# 	define KEY_DEFAULT_DRAG


/* __________ Clothes __________ */
/** KEY_DEFAULT_CHECK_ALL:
 ** take a cloth, drive through all it's storage
 ** make the element visible to the camera
 ** (took it off + show it + store it : ~1sec)
 ** interruptible (between each item), can select current item
 ** cd need a key: next / previous item => wheel ?
 ** cd use Shift + wheel to change cloth ...
 */
# 	define KEY_DEFAULT_CHECK_ALL
# 	define KEY_DEFAULT_CHECK_HELMET
# 	define KEY_DEFAULT_CHECK_JACKET
# 	define KEY_DEFAULT_CHECK_PANTS
# 	define KEY_DEFAULT_CHECK_GLOVE
#	define KEY_DEFAULT_CHECK_SHOES

/* check both ? dual keys ? */
/* # define KEY_DEFAULT_CHECK_BELT */
/* || */
# 	define KEY_DEFAULT_CHECK_BELT_FRONT
# 	define KEY_DEFAULT_CHECK_BELT_BACK

/* check both ? dual keys ? */
/* depend on hand_inventory ? */
/* # define KEY_DEFAULT_CHECK_HOLSTERS */
/* || */
# 	define KEY_DEFAULT_CHECK_HOLSTER_LEFT
# 	define KEY_DEFAULT_CHECK_HOLSTER_RIGHT




/* __________ Misc __________ */
/* Non Playing Characters interactions */
# 	define KEY_DEFAULT_TALK
# 	define KEY_DEFAULT_EAT
# 	define KEY_DEFAULT_DRINK
/* other players interactions */
# 	define KEY_DEFAULT_CHAT
#	define KEY_DEFAULT_MENU
# 	define KEY_DEFAULT_PAUSE


/* is character's output */
# 	define KEY_DEFAULT_GETSTATUS



/* __________ Weapon __________ */
/* left / right : index */
# 	define KEY_DEFAULT_WEAPON_FIRE_LEFT
#	define KEY_DEFAULT_WEAPON_FIRE_RIGHT

# 	define KEY_DEFAULT_WEAPON_RELOAD

/** Zoom
 ** wheel: progressive zoom (reduce head - barrel distance)
 ** => increase accuracy, decrease character motion speed
 ** zoom FULL / NONE: click wheel
 */
# 	define KEY_DEFAULT_WEAPON_ZOOM_IN
# 	define KEY_DEFAULT_WEAPON_ZOOM_OUT
# 	define KEY_DEFAULT_WEAPON_ZOOM_FULL
# 	define KEY_DEFAULT_WEAPON_ZOOM_NONE

# 	define KEY_DEFAULT_WEAPON_RELOAD_ALL
#	define KEY_DEFAULT_WEAPON_CHECK


/* get first available, matching specs (or approaching) */
/* && we don't know there's no bullet */
# 	define KEY_DEFAULT_WEAPON_GET_RIFFLE
# 	define KEY_DEFAULT_WEAPON_GET_HANDGUN
# 	define KEY_DEFAULT_WEAPON_GET_SNIPER
# 	define KEY_DEFAULT_WEAPON_GET_SHOTGUN

# 	define KEY_DEFAULT_WEAPON_ADD_SILENCER
# 	define KEY_DEFAULT_WEAPON_ADD_FLASH_SUPPRESSOR
# 	define KEY_DEFAULT_WEAPON_ADD_BI_POD

# 	define KEY_DEFAULT_WEAPON_TOGGLE_STRAP
# 	define KEY_DEFAULT_WEAPON_TOGGLE_SELECTOR


/* cd be long check pressure ? */
# 	define KEY_DEFAULT_WEAPON_INSPECT

/* no weapon in hand, request fire (mouse1) */
/* not rly a key */
# 	define KEY_DEFAULT_QUICKFIRE


#endif /* !DEFAULT_KEYS_H_ */
